/* 虚拟对象：把共性抽象出来 */
#ifndef __VIROBJ_H__
#define __VIROBJ_H__

#include "Point.h"

// 场景对象
class SceneObj
{
public:
    Point &GetLocation()
    {
        return Location;
    }
private:
    DEFINE_MEMBER(Symbol, std::string); // 图标
    DEFINE_MEMBER(Location, Point);     // 坐标
};
 
// 虚拟对象
class VirObj : public SceneObj
{
    DEFINE_MEMBER(Name, std::string); // 名字 
    DEFINE_MEMBER(HP, int);           // 血量
    DEFINE_MEMBER(Attack, int);       // 攻击力
    DEFINE_MEMBER(Defend, int);       // 防御力
    DEFINE_MEMBER(Exp, int);          // 经验值
    DEFINE_MEMBER(Gold, int);         // 金币
    DEFINE_MEMBER(Diamond, int);      // 钻石
    DEFINE_MEMBER(Power, int);        // 暴击
    DEFINE_MEMBER(Dodge, int);        // 闪避
    DEFINE_MEMBER(Floor, int);        // 楼层
};

#endif